Composite task processor

ABSTRACT

Technologies are generally described for systems, devices and methods effective to process a composite task to be applied to an ontology. In some examples, the methods may include a processor receiving a composite task. The methods may include the processor transforming the composite task into a set of atomic tasks. The set of atomic tasks may include at least a first atomic task, a second atomic task, and a third atomic task. The methods may include the processor determining that the first atomic task is equivalent to the second atomic task based on the ontology. The methods may include the processor removing the second atomic task from the set of atomic tasks to generate a list of atomic tasks. The methods may include the processor applying the list of atomic tasks to the ontology.

CROSS-REFERENCE TO RELATED APPLICATIONS

This Application is a continuation application under 35 U.S.C. § 120 ofU.S. patent application Ser. No. 14/647,701, filed on May 27, 2015,which is a U.S. National Stage filing under 35 U.S.C. § 371 ofInternational Application No. PCT/CN2014/076770, filed on May 5, 2014.The disclosures of U.S. patent application Ser. No. 14/647,701 andInternational Application No. PCT/CN2014/076770 are hereby incorporatedherein by reference in their entireties.

BACKGROUND

Unless otherwise indicated herein, the materials described in thissection are not prior art to the claims in this application and are notadmitted to be prior art by inclusion in this section.

In a parallel processing arrangement, more than one central processingunit (CPU) or processor core may execute a program or multicomputational threads. A parallel processing arrangement may executeinstructions faster than serial processing. The program may be dividedin such a way that separate CPUs or cores can execute different portionsof the program without interfering with each other.

SUMMARY

In an example, methods effective to process a composite task to beapplied to an ontology are described. The methods may include aprocessor receiving the composite task. The methods may include theprocessor transforming the composite task into a set of atomic tasks.The set of atomic tasks may include at least a first atomic task, asecond atomic task, and a third atomic task. The methods may include theprocessor determining that the first atomic task is equivalent to thesecond atomic task based on the ontology. The methods may include theprocessor removing the second atomic task from the set of atomic tasksto generate a list of atomic tasks. The methods may include theprocessor applying the list of atomic tasks to the ontology.

In an example, methods effective to process a composite task to beapplied to an ontology are described. The methods may include aprocessor receiving the composite task. The methods may include theprocessor transforming the composite task into a set of atomic tasks.The set of atomic tasks may include at least a first atomic task, asecond atomic task, and a third atomic task. The methods may include theprocessor analyzing a semantic relationship between the first atomictask, the second atomic task and the third atomic task based on asemantic relation graph. The semantic relation graph may be based on theontology. The methods may include the processor determining a firstsemantic relationship between the first atomic task and the secondatomic task. The first atomic task may be more semantically restrictivethan the second atomic task. The methods may include the processordetermining a second semantic relationship between the second atomictask and the third atomic task. The second atomic task may be moresemantically restrictive than the third atomic task. The methods mayinclude the processor generating an ordered list of the first atomictask, the second atomic task and the third atomic task based on thedetermined first and second semantic relationships.

In an example, devices configured to process a composite task to beapplied to an ontology are described. The devices may include aprocessor and a memory. The memory may include the ontology, a semanticrelation graph, and instructions. The instructions, when executed by theprocessor, may cause the processor to receive the composite task. Theinstructions, when executed by the processor, may cause the processor totransform the composite task into a set of atomic tasks. The set ofatomic tasks may include at least a first atomic task, a second atomictask, and a third atomic task. The instructions, when executed by theprocessor, may cause the processor to determine the first atomic task isequivalent to the second atomic task based on the semantic relationgraph. The instructions, when executed by the processor, may cause theprocessor to remove the second atomic task from the set of atomic tasksto generate a list of atomic tasks. The instructions, when executed bythe processor, may cause the processor to order the list of atomic tasksbased on the semantic relation graph. The instructions, when executed bythe processor, may cause the processor to apply the ordered list ofatomic tasks to the ontology.

The foregoing summary is illustrative only and is not intended to be inany way limiting. In addition to the illustrative aspects, embodiments,and features described above, further aspects, embodiments, and featureswill become apparent by reference to the drawings and the followingdetailed description.

BRIEF DESCRIPTION OF THE FIGURES

FIG. 1 illustrates an example composite task processor system;

FIG. 2 illustrates the example composite task processor system of FIG. 1with additional details relating to atomic tasks;

FIG. 3 depicts a flow diagram for example processes to process compositetasks;

FIG. 4 illustrates computer program products configured to processcomposite tasks; and

FIG. 5 is a block diagram illustrating an example computing device thatis arranged to process composite tasks, all arranged in accordance withat least some embodiments described herein.

DETAILED DESCRIPTION

In the following detailed description, reference is made to theaccompanying drawings, which form a part hereof. In the drawings,similar symbols typically identify similar components, unless contextdictates otherwise. The illustrative embodiments described in thedetailed description, drawings, and claims are not meant to be limiting.Other embodiments may be utilized, and other changes may be made,without departing from the spirit or scope of the subject matterpresented herein. It will be readily understood that the aspects of thepresent disclosure, as generally described herein, and illustrated inthe Figures, can be arranged, substituted, combined, separated, anddesigned in a wide variety of different configurations, all of which areexplicitly contemplated herein.

This disclosure is generally drawn, inter alia, to methods, apparatus,systems, devices, and computer program products related to a compositetask processor.

Briefly stated, technologies are generally described for systems,devices and methods effective to process a composite task to be appliedto an ontology. The ontology may include nodes representing concepts,and links between the nodes representing relationships among theconcepts. The methods may include a processor receiving a compositetask. For example, a composite task may include multiple tasks for theprocessor to apply to the ontology. In an example, the ontology mayrelate to mathematics (or math) and the composite task may be a requestto find the area of a complicated shape. The methods may include theprocessor transforming the composite task into a set of atomic taskssuch as tasks to find the area of simpler shapes like circles. Forexample, the composite task may include multiple smaller tasks or atomictasks to be applied to the ontology. The set of atomic tasks may includeat least a first atomic task, a second atomic task, and a third atomictask. The methods may include the processor determining that the firstatomic task is equivalent to the second atomic task based on theontology. For example, the ontology may be a math ontology. The firstatomic task and the second atomic task may both relate to determiningthe area of a circle. Based on a math ontology, the first and secondatomic tasks may be determined to the equivalent. The methods mayinclude the processor removing the second atomic task from the set ofatomic tasks to generate a list of atomic tasks. For example, if thefirst atomic task is equivalent to the second atomic task, then only oneof the atomic tasks may need to be applied to the ontology to processthe composite task. The methods may include the processor applying thelist of atomic tasks to the ontology.

FIG. 1 illustrates an example composite task processor system, arrangedin accordance with at least some embodiments described herein. Asdiscussed in more detail below, in some examples, a system 100 mayinclude a processor 104 and a memory 106. Processor 104 may beconfigured to be in communication with memory 106. Memory 106 mayinclude an ontology 130, a semantic relation graph 140, transformationinstructions 108, equivalence instructions 110, implication listinstructions 112, and binary reasoning instructions 114. Processor 104may also be configured to be in communication with ontology 130 andsemantic relation graph 140 over a network 136 if ontology 130 andsemantic relation graph 140 are not stored in memory 106. As discussedin more detail below, processor 104 may process composite task 102 andapply composite task 102 to ontology 130.

In one example, processor 104 may receive one or more composite tasks102. Composite task 102 may include multiple reasoning requests oratomic tasks to be applied to ontology 130 by processor 104. Processor104 may process composite task 102 by executing transformationinstructions 108 to transform composite task 102 into a set of atomictasks 126. Atomic tasks in set of atomic tasks 126 may be subset tasksof composite task 102 where each atomic task in set of atomic tasks 126may be a task that may be difficult to further divide into smallertasks. For example, if composite task 102 is “take care of dog”, atomictasks in set of atomic tasks 126 may include; “feed dog”, “give dogwater”, “walk dog”, “clean up after dog”, “groom dog”, etc. Processor104 may transform composite task 102 into set of atomic tasks 126 suchthat atomic tasks in set of atomic tasks 126 are in standard formdescriptive logic notations and symbols—explained in more detail below.

Processor 104 may execute equivalence instructions 110 on atomic tasksin set of atomic tasks 126. In executing equivalence instructions 110,processor 104 may utilize semantic relation graph 140 to determineatomic tasks in set of atomic tasks 126 which are semanticallyequivalent within semantic relation graph 140. For example, the atomictasks “feed the dog” and “give the dog dinner” may be semanticallyequivalent in semantic relation graph 140 and in ontology 130. Semanticrelation graph 140 may be constructed prior to processor 104 receivingcomposite task 102, may be generated based on ontology 130 and mayillustrate relationships between standard form descriptive logicnotations and symbols in ontology 130—explained in more detail below.Semantic relation graph 140 may reflect semantic relationships betweenthe atomic tasks in set of atomic tasks 126.

Processor 104 may generate a list of atomic tasks 128 from set of atomictasks 126 by removing all but one of each atomic task in set of atomictasks 126 determined to be equivalent. For example, if atomic task A andatomic task B are determined to be equivalent, processor 104 may removeall instances of atomic task A and atomic task B from set of atomictasks 126, except for one instance of atomic task A of atomic task B, togenerate list of atomic tasks 128.

Processor may execute implication list instructions 112 on list ofatomic tasks 128. In executing implication list instructions 112,processor 104 may utilize semantic relation graph 140 to order list ofatomic tasks 128 and generate ordered list of atomic tasks 132. Orderedlist of atomic tasks 132 may include atomic tasks that are relatedwithin semantic relation graph 140 such as one atomic task implying orbeing more semantically restrictive than another, related atomic task.For example, if an individual can legally drive a car, than this mayimply that the individual has a license; and having a license may implythat the individual is over sixteen years old. In the previous example,ordered list of atomic tasks 132 may include: can legally drive acar→has a license→over sixteen years old.

Processor 104 may execute binary reasoning instructions 114 on orderedlist of atomic tasks 132 to determine atomic tasks to apply to ontology130. For example, if the more semantically restrictive task “take careof dog” can be processed, then processor 104 need not thereafter processthe less semantically restrictive task “feed the dog.” Processor 104,executing binary reasoning instructions 114, may select an atomic taskfrom approximately the middle of ordered list of atomic tasks 132 toapply to ontology 130. For example, if there are n atomic tasks inordered list of atomic tasks 132, processor 104 may select atomic taskat position n/2 within ordered list of atomic tasks 132 where n/2 is aninteger. If n/2 is not an integer, processor 104 may select atomic taskat position (n+1)/2. Processor 104 may receive a response to applyingthe selected atomic task to ontology 130. A response from applying theselected atomic task to ontology 130 may indicate whether processor 104can execute the selected atomic task and less semantically restrictivetasks. Based on the response and binary reasoning instructions 114,processor 104 may select a second atomic task from ordered list ofatomic tasks 132 to apply to ontology 130. Processor 104 executingbinary reasoning instructions 114 and applying atomic tasks from orderedlist of atomic tasks 132 to ontology 130, may determine which atomictasks within ordered list of atomic tasks 132 must be executed andapplied to ontology 130 to execute composite task 102. For example, ifcomposite task 102 is to determine habits of drivers with low insurancerates, and binary reasoning instructions are executed on ordered list ofatomic tasks 132 (can legally drive a car→has a license→over sixteenyears old), then processor 104 may only apply the atomic task ofdetermining whether an individual “can legally drive a car” to ontology130. A response to this atomic task may indicate that ontology 130 maybe able to determine an individual can legally drive a car. As aconsequence, the atomic tasks of determining an individual “has alicense” and determining an individual is “over sixteen years of age”may not be applied to ontology 130 as these two atomic tasks are impliedby the first atomic task of determining an individual “can legally drivea car.” Processor 104 may apply atomic tasks from ordered list of atomictasks 132 with use of binary reasoning instructions 114 to ontology 130to execute composite task 102. Use of binary reasoning instructions 114may result in less processing time, less processing memory, and lesspower than applying all atomic tasks in ordered list of atomic tasks 132on ontology 130.

FIG. 2 illustrates example composite task processor system 100 of FIG. 1with additional details relating to atomic tasks, arranged in accordancewith at least some embodiments described herein. FIG. 2 is substantiallysimilar to FIG. 1, with additional details. Those components in FIG. 2that are labeled identically to components of FIG. 1 will not bedescribed again for the purposes of clarity.

In one example, processor 104 may receive composite task 102. Compositetask 102 may include multiple reasoning requests or atomic tasks to beapplied to ontology 130 by processor 104. Processor 104 may processcomposite task 102 by executing transformation instructions 108 totransform composite task 102 into set of atomic tasks 126, includingatomic task 216, atomic task 218, atomic task 220, atomic task 222, andatomic task 224.

Ontology 130 may include standard form descriptive logic notations thatmay be used to model concepts, roles, and individuals, and therelationships therebetween. Ontology 130 may include axioms indescriptive logic notation relating concepts and/or roles withinontology 130. Axioms within ontology 130 may denote semantic data orknowledge and links between axioms may denote relationships amongaxioms. Ontology 130, may be looked at as an axiom set, and may be usedto denote a semantic data set or a knowledge base. Ontology 130 mayinclude descriptive logic notation that may include the standard logicnotation of the Semantic Web.

Processor 104, executing transformation instructions 108, may transformcomposite task 102 into standard form descriptive logic notations.Composite task 102, transformed into standard form descriptive logicnotation may include inclusion axioms. Transformation instructions 108may include instructions to transform inclusion axioms in composite task102 into concepts. Transformation instructions 108 may includeinstructions to subsequently transform concepts in composite task 102,including concepts derived from transforming inclusion axioms incomposite task 102, into a negation normal form. Transformationinstructions 108 may include a negation normal form of a concept, forexample, when negation occurs only in front of a concept name.Transformation instructions 108 may include instructions to subsequentlytransform the negation normal form concepts into a conjunction form.Transformation instructions 108 may include instructions to separateconcepts or assertions connected with the conjunctions into differentatomic tasks.

Processor 104 may further execute transformation instructions 108 totransform queries in composite task 102 into assertions. For example, aquery in composite task 102 may be transformed into multiple assertions.Processor 104, executing transformation instructions 108, may separatethe assertions transformed from queries in composite task 102 intoatomic tasks to be applied to ontology 130. Processor 104 may transforminclusion axioms, concepts, assertions, and queries in composite task102 into set of atomic tasks 126.

Semantic relation graph 140 may be constructed prior to processor 104receiving composite task 102 and may be generated based on ontology 130.Semantic relation graph 140, based on ontology 130, may illustraterelationships between standard form descriptive logic notations andsymbols in ontology 130. Semantic relation graph 140 may be generated byprocessor 104 and stored in memory 106. Processor 104 may be configuredto be in communication with semantic relation graph 140 over a network136 if semantic relation graph 140 was not generated by processor 104and/or is not stored in memory 106. Semantic relation graph 140 mayinclude semantic relationships between symbols of ontology 130. Semanticrelationships in semantic relation graph 140 may include semanticrelations between pairs of symbols. For example, a first and a secondsymbol may be related in semantic relations graph 140 as equivalent, thefirst symbol may be more semantically restrictive than the secondsymbol, or the second symbol may be more semantically restrictive thanthe first symbol. Semantic relationships between symbols on an ontologymay be used to determine relationships between atomic tasks in set ofatomic tasks 126.

Processor 104 or another processor may construct semantic relation graph140 based on ontology 130. A semantic relationship may be determined forall symbols within ontology 130. The determined semantic relationshipsbetween all symbols of ontology 130 may be represented in semanticrelation graph 140. Semantic relation graph 140 may be constructed bydetermining a semantic relationship between a first symbol and a secondsymbol of ontology 130, until every possible pair combination of symbolsin ontology 130 is related on semantic relation graph 140. In oneexample, processor 104 may check a semantic relationship between a firstsymbol and a second symbol. Processor 104 may determine the first symbolsemantically equivalent to the second symbol. Processor 104 maydetermine the first symbol more semantically restrictive than the secondsymbol. Processor 104 may determine the second symbol more semanticallyrestrictive than the first symbol. Processor 104 may graph the first andsecond symbols on semantic relation graph 140 with the determinedsemantic relationship. Processor 104 may continue to determine semanticrelationships between pairs of symbols of ontology 130 until all paircombinations have been graphed on semantic relation graph 140. Processor104 may construct semantic relation graph 140 prior to receivingcomposite task 102.

An example construction of a semantic relation graph 140 (“SG”) based onontology 130 represented by O and first and second symbols representedby s_(i) and s_(j) is presented below.

Input: an ontology O; Output: a graph SG; 1: for each pair (s_(i) ands_(j)) where s_(i), s_(j) ∈ O 2: check semantic relation betweens_(i,)s_(j) using the definition below 3: if s_(i) = s_(j) then 4: builds_(i) 

 s_(j) into graph SG 5: else if s_(i) >> s_(j) then 6: build si →j intograph SG 7: if s_(i) << _(sj) then 8: build s_(i) ← s_(j) into SG

Reasoning for composite task 102 may be determined by the semanticinterpretation of symbols within composite task 102. A semanticinterpretation for a symbol in ontology 130 may be determined by asyntactic definition of the symbol. Semantic relationships betweensymbols within ontology 130 may be based on the symbols syntacticdefinitions.

Definition: Given ontology O, s₁ and s₂ are two symbols in ontology OLet A(s) denote all axioms which contain s in ontology O A(s)^(s→s′)represents replacing symbols s with s′ for all axioms A(s) 1. IfA(s₁)^(s1→s2) = A(s₂), then s₁ and s₂ are semantically equivalent,denoted by s₁ == s_(2.) 2. If A(s₁)^(s1→s2) ⊃ A(s₂), then s₁ is moresemantically restricted than s₂, denoted by s₁ << s_(2.) 3. IfA(s₁)^(s1→s2) ⊂ A(s₂), then s₂ is more semantically restricted than s₁,denoted by s₁ >> s_(2.)This definition of the semantic relationships between two symbols ofontology 130 may be used to construct semantic relation graph 140.

Processor 104 may execute equivalence instructions 110 on atomic tasks216, 218, 220, 222, and 224. For example, processor 104 may utilizesemantic relation graph 140 to determine those of atomic tasks 216, 218,220, 222, 224 which are semantically equivalent within semantic relationgraph 140. Semantic relation graph 140 may include semanticrelationships among atomic tasks 216, 218, 220, 222, 224. In an example,as shown at 230, processor 104 may, by executing equivalenceinstructions 110, utilize semantic relation graph 140 to determine thatatomic task 216 is semantically equivalent to atomic task 222. Processor104 may generate list of atomic tasks 128 from set of atomic tasks 126by removing all but one of atomic tasks 216 and 222 determined to beequivalent. Processor 104 may determine that list of atomic tasks 128includes atomic tasks 216, 218, 220, and 224.

Processor 104 may execute implication instructions 112 on atomic tasks216, 218, 220, and 224 in list of atomic tasks 128 and may utilizesemantic relation graph 140 to generate ordered list of atomic tasks132. Ordered list of atomic tasks 132 may include atomic tasks thatimply other atomic tasks within semantic relation graph 140. Forexample, processor 104 may utilize semantic relation graph 140 togenerate ordered list of atomic tasks 132—that includes atomic tasks216, 218, 220, and 224. Semantic relation graph 140 may identify atomictask 216 as implying atomic task 220, identify atomic task 220 asimplying atomic task 224, and identify atomic task 224 as implyingatomic task 218. Processor 104 may determine ordered list of atomictasks 132 including atomic tasks 216, 218, 220, and 224 as:216→220→224→218.

Processor 104 may execute binary reasoning instructions 114 on orderedlist of atomic tasks 132. Processor 104 may, by executing binaryreasoning instructions 114 on ordered list of atomic tasks 132,determine which of atomic tasks 216, 220, 224, 218 to apply to ontology130. Processor 104, executing binary reasoning instructions 114, mayselect an atomic task from approximately the middle of an ordered listof atomic tasks 132 to apply to ontology 130. For example, ordered listof atomic tasks 132 may include ordered atomic tasks 216, 220, 224, 218to apply to ontology 130. Processor 104 may execute binary reasoninginstructions 114 and apply atomic task 220 to ontology 130. Processor104 may receive a response to applying atomic task 220 to ontology 130.A response from applying an atomic task to ontology 130 may indicatewhether processor 104 can execute the atomic task on ontology 130. Basedon the response and binary reasoning instructions 114, processor 104 mayselect a second atomic task from ordered list of atomic tasks 132 toapply to ontology 130. For example, the response may indicate thatatomic task 220 can be executed on ontology 130. As a consequence,processor 104 may determine that atomic tasks 224 and 218 do not need tobe applied to ontology 130 and may select atomic task 216 as the nextatomic task to apply to ontology 130.

Among other potential benefits, a system in accordance with thedisclosure may take less time and use less processing resources toprocess a composite task. The system may avoid duplicate processing byidentifying equivalent atomic tasks of a composite task and only processthe equivalent atomic tasks once, saving processing time and otherprocessing resources such as battery life, energy consumption, andmemory requirements. The system may also avoid unnecessary processing bydetermining atomic tasks that do not need to be applied to the ontologybased on the ordered list, thus lowing the number of atomic tasks toapply to the ontology and reducing processing time and resources.Concurrent reasoning tasks may be processed efficiently.

Experimental Data

Simulations were run using a descriptive logic reasoner (PELLET) and anapplication programmable interface (API) for ontology manipulation(OWLAPI) on several Lehigh University Benchmark (LUBM) ontologies. LUBMontologies ranged from 10⁵ axioms to 10⁶ axioms with correspondingnumber of reasoning tasks from 10⁴ to 10⁶. The syntax used was SHIF(D).

TABLE 1 Total Size |reasoning Ontology Syntax |Axioms| (MB) tasks|LUBM-Lite1_(+10K) SHIF(D) 100,729 8.03 10⁴ LUBM-Lite10_(+50K) 1,001,73880.7 5 × 10⁴ LUBM-Lite50_(+100K) 5,096,008 697.2 10⁶

All experiments were run on a 2.60 GHz PENTIUM-4 processor with 4GB ofphysical memory and with a maximum Java heap size set to 3072 MB forapplying PELLET. First, a semantic relation graph 140 was constructedfor each ontology 130. Construction of semantic relation graph 140 maybe done prior to receiving composite task to process and may be done offline.

TABLE 2 Ontology Execution Time (s) Graph Size (MS) LUBM-Lite1 747 8.78LUBM-Lite10 3,847 90.7 LUBM-Lite50 13,276 901.2

Experimental results indicate construction time of dozens of minutes forontology 130 of about 10⁵ axioms (LUBM-Lite1) to several hours forontology 130 of about 5×10⁶ axioms (LUBM-Lite50). The experimentalresults illustrate the construction of semantic relation graph 140 maybe completed in a reasonable amount of time. For ontology 130, semanticrelation graph 140 need only be constructed once, and may be constructedprior to receiving composite task 102 to process. Semantic relationgraph 140 may be loaded into memory 106. Semantic relation graph 140 mayrequire slightly more memory than ontology 130 from which semanticrelation graph 140 is constructed.

TABLE 3 Total Execution Time (s) Non-optimized Present Method Ontologymethod Ordered Binary LUBM-Lite1_(+10K) 6.2 0.6 2.1 LUBM-Lite10_(+50K)150.6 12.1 20.3 LUBM-Lite50_(+100K) 2,063.5 50.6 232.5

Table 3 illustrates the experimental amount of time to process compositetask 102 for the three ontologies 130 by standard processing of theentire composite task (Non-optimized method) and the present method.Table 3 includes columns for amounts of time to generate ordered listsand binary reasoning. As shown, the present method completed compositetask 102 in significantly less time. For ontology 130 with 10⁵ axioms(LUBM-Litel_(+10K)) processing time was decreased to about half and forontology 130 with 10⁶ axioms (LUBM-Lite50_(+100K)) processing time wasreduced by over 85%.

TABLE 4 Actual Number of Tasks Ontology Non-optimized method PresentLUBM-Lite1_(+10K) 10,000 2,078 LUBM-Lite10_(+50K) 50,000 7,836LUBM-Lite50_(+100K) 100,000 13,765

Table 4 illustrates the number of tasks applied to ontology 130 toprocess composite task 102. As shown, the number of tasks applied toontology 130 is significantly reduced by the present method. Forontology 130 with 10⁵ axioms (LUBM-Lite1_(+10K)) the number of tasks toapply to ontology 130 was decreased by just under 80% for ontology 130with 10⁶ axioms (LUBM-Lite50_(+100K)) the number of tasks to apply toontology 130 was decreased by over 86%.

FIG. 3 illustrates a flow diagram for example processes to processcomposite tasks, arranged in accordance with at least some embodimentspresented herein. The process in FIG. 3 could be implemented using, forexample, system 100 discussed above. An example process may include oneor more operations, actions, or functions as illustrated by one or moreof blocks S2, S4, S6, S8 and/or S10. Although illustrated as discreteblocks, various blocks may be divided into additional blocks, combinedinto fewer blocks, or eliminated, depending on the desiredimplementation.

Processing may begin at block S2, “Receive the composite task.” At blockS2, the processor may receive the composite task. The composite task mayinclude multiple reasoning requests or atomic tasks to be applied to anontology by the processor.

Processing may continue from block S2 to block S4, “Transform thecomposite task into a set of atomic tasks, the set of atomic tasksincluding at least a first atomic task, a second atomic task, and athird atomic task.” At block S4, the processor may transform thecomposite task into a set of atomic tasks. The set of atomic tasks mayinclude at least a first atomic task, a second atomic task, and a thirdatomic task. The atomic tasks in the set of atomic tasks may be subsettasks of the composite task which may be difficult to divide intosmaller tasks. The processor may transform the composite task into theset of atomic tasks such that the atomic tasks in the set of atomictasks are in standard form descriptive logic notations and symbols.

Processing may continue from block S4 to block S6, “Determine that thefirst atomic task is equivalent to the second atomic task based on theontology.” At block S6, the processor may determine that the firstatomic task is equivalent to the second atomic task. The determinationmay be based on the ontology. The processor may utilize a semanticrelationship graph to determine atomic tasks in the set of atomic taskswhich are semantically equivalent within the semantic relation graph.The semantic relation graph may be constructed prior to the processorreceiving the composite task. The semantic relation graph may begenerated based on the ontology and may illustrate relationships betweenstandard form descriptive logic notations and symbols in the ontology.The semantic relationship graph may include semantic relationshipsbetween atomic tasks of the ontology.

Processing may continue from block S6 to block S8, “Remove the secondatomic task from the set of atomic tasks to generate a list of atomictasks.” At block S8, the processor may remove the second atomic taskfrom the set of atomic tasks to generate a list of atomic tasks. Theprocessor may generate the list of atomic tasks from the set of atomictasks by removing all but one of each atomic task in the set of atomictasks determined to be equivalent.

Processing may continue from block S8 to block S10, “Apply the list ofatomic tasks to the ontology.” At block S10, the processor may apply thelist of atomic tasks to the ontology. The processor may utilize thesemantic relationship graph to order the list of atomic tasks togenerate an ordered list of atomic tasks prior to applying the list ofatomic tasks to the ontology. The ordered list of atomic tasks mayinclude atomic tasks that are related within the semantic relationshipgraph such as one atomic task implying another atomic task. Theprocessor may select an atomic task from approximately the middle of theordered list of atomic tasks to apply to the ontology. The processor mayreceive a response to applying the selected atomic task to the ontology.A response from applying the atomic task to the ontology may indicatewhether the ontology can execute the atomic task. Based on the response,the processor may select a second atomic task from the ordered list ofatomic tasks to apply to the ontology. The processor may determineatomic tasks within the ordered list of atomic tasks that should beapplied to the ontology to execute the composite task.

FIG. 4 illustrates computer program products 400 configured to processcomposite tasks, arranged in accordance with at least some embodimentspresented herein. Computer program product 400 may include a signalbearing medium 402. Signal bearing medium 402 may include one or moreinstructions 404 that, when executed by, for example, a processor, mayprovide the functionality described above with respect to FIGS. 1-3.Thus, for example, referring to system 100, processor 104 may undertakeone or more of the blocks shown in FIG. 4 in response to instructions404 conveyed to the system 100 by signal bearing medium 402.

In some implementations, signal bearing medium 402 may encompass acomputer-readable medium 406, such as, but not limited to, a hard diskdrive, a compact disc (CD), a digital video disk (DVD), a digital tape,memory, etc. In some implementations, signal bearing medium 402 mayencompass a recordable medium 408, such as, but not limited to, memory,read/write (R/W) CDs, R/W DVDs, etc. In some implementations, signalbearing medium 402 may encompass a communications medium 410, such as,but not limited to, a digital and/or an analog communication medium(e.g., a fiber optic cable, a waveguide, a wired communication link, awireless communication link, etc.). Thus, for example, computer programproduct 400 may be conveyed to one or more modules of the system 100 byan RF signal bearing medium 402, where the signal bearing medium 402 isconveyed by a wireless communications medium 410 (e.g., a wirelesscommunications medium conforming with the IEEE 802.11 standard).

FIG. 5 is a block diagram illustrating an example computing device 500that is arranged to process composite tasks, arranged in accordance withat least some embodiments presented herein. In a very basicconfiguration 502, computing device 500 typically includes one or moreprocessors 504 and a system memory 506. A memory bus 508 may be used forcommunicating between processor 504 and system memory 506.

Depending on the desired configuration, processor 504 may be of any typeincluding but not limited to a microprocessor (μP), a microcontroller(μC), a digital signal processor (DSP), or any combination thereof.Processor 504 may include one or more levels of caching, such as a levelone cache 510 and a level two cache 512, a processor core 514, andregisters 516. An example processor core 514 may include an arithmeticlogic unit (ALU), a floating point unit (FPU), a digital signalprocessing core (DSP core), or any combination thereof. An examplememory controller 518 may also be used with processor 504, or in someimplementations memory controller 518 may be an internal part ofprocessor 504.

Depending on the desired configuration, system memory 506 may be of anytype including but not limited to volatile memory (such as RAM),non-volatile memory (such as ROM, flash memory, etc.) or any combinationthereof. System memory 506 may include an operating system 520, one ormore applications 522, and program data 524.

Application 522 may include a composite tasks processing algorithm 526that is arranged to perform the functions as described herein includingthose described previously with respect to FIGS. 1-4. Program data 524may include composite tasks processing data 528 that may be useful forprocessing of composite tasks as is described herein. In someembodiments, application 522 may be arranged to operate with programdata 524 on operating system 520 such that processing of composite tasksmay be provided. This described basic configuration 502 is illustratedin FIG. 5 by those components within the inner dashed line.

Computing device 500 may have additional features or functionality, andadditional interfaces to facilitate communications between basicconfiguration 502 and any required devices and interfaces. For example,a bus/interface controller 530 may be used to facilitate communicationsbetween basic configuration 502 and one or more data storage devices 532via a storage interface bus 534. Data storage devices 532 may beremovable storage devices 536, non-removable storage devices 538, or acombination thereof. Examples of removable storage and non-removablestorage devices include magnetic disk devices such as flexible diskdrives and hard-disk drives (HDD), optical disk drives such as compactdisk (CD) drives or digital versatile disk (DVD) drives, solid statedrives (SSD), and tape drives to name a few. Example computer storagemedia may include volatile and nonvolatile, removable and non-removablemedia implemented in any method or technology for storage ofinformation, such as computer readable instructions, data structures,program modules, or other data.

System memory 506, removable storage devices 536 and non-removablestorage devices 538 are examples of computer storage media. Computerstorage media includes, but is not limited to, RAM, ROM, EEPROM, flashmemory or other memory technology, CD-ROM, digital versatile disks (DVD)or other optical storage, magnetic cassettes, magnetic tape, magneticdisk storage or other magnetic storage devices, or any other mediumwhich may be used to store the desired information and which may beaccessed by computing device 500. Any such computer storage media may bepart of computing device 500.

Computing device 500 may also include an interface bus 540 forfacilitating communication from various interface devices (e.g., outputdevices 542, peripheral interfaces 544, and communication devices 546 )to basic configuration 502 via bus/interface controller 530. Exampleoutput devices 542 include a graphics processing unit 548 and an audioprocessing unit 550, which may be configured to communicate to variousexternal devices such as a display or speakers via one or more A/V ports552. Example peripheral interfaces 544 include a serial interfacecontroller 554 or a parallel interface controller 556, which may beconfigured to communicate with external devices such as input devices(e.g., keyboard, mouse, pen, voice input device, touch input device,etc.) or other peripheral devices (e.g., printer, scanner, etc.) via oneor more I/O ports 558. An example communication device 546 includes anetwork controller 560, which may be arranged to facilitatecommunications with one or more other computing devices 562 over anetwork communication link via one or more communication ports 564.

The network communication link may be one example of a communicationmedia. Communication media may typically be embodied by computerreadable instructions, data structures, program modules, or other datain a modulated data signal, such as a carrier wave or other transportmechanism, and may include any information delivery media. A “modulateddata signal” may be a signal that has one or more of its characteristicsset or changed in such a manner as to encode information in the signal.By way of example, and not limitation, communication media may includewired media such as a wired network or direct-wired connection, andwireless media such as acoustic, radio frequency (RF), microwave,infrared (IR) and other wireless media. The term computer readable mediaas used herein may include both storage media and communication media.

Computing device 500 may be implemented as a portion of a small-formfactor portable (or mobile) electronic device such as a cell phone, apersonal data assistant (PDA), a personal media player device, awireless web-watch device, a personal headset device, an applicationspecific device, or a hybrid device that include any of the abovefunctions. Computing device 500 may also be implemented as a personalcomputer including both laptop computer and non-laptop computerconfigurations.

The present disclosure is not to be limited in terms of the particularembodiments described in this application, which are intended asillustrations of various aspects. Many modifications and variations canbe made without departing from its spirit and scope, as will be apparentto those skilled in the art. Functionally equivalent methods andapparatuses within the scope of the disclosure, in addition to thoseenumerated herein, will be apparent to those skilled in the art from theforegoing descriptions. Such modifications and variations are intendedto fall within the scope of the appended claims. The present disclosureis to be limited only by the terms of the appended claims, along withthe full scope of equivalents to which such claims are entitled. It isto be understood that this disclosure is not limited to particularmethods, reagents, compounds compositions or biological systems, whichcan, of course, vary. It is also to be understood that the terminologyused herein is for the purpose of describing particular embodimentsonly, and is not intended to be limiting.

With respect to the use of substantially any plural and/or singularterms herein, those having skill in the art can translate from theplural to the singular and/or from the singular to the plural as isappropriate to the context and/or application. The varioussingular/plural permutations may be expressly set forth herein for sakeof clarity.

It will be understood by those within the art that, in general, termsused herein, and especially in the appended claims (e.g., bodies of theappended claims) are generally intended as “open” terms (e.g., the term“including” should be interpreted as “including but not limited to,” theterm “having” should be interpreted as “having at least,” the term“includes” should be interpreted as “includes but is not limited to,”etc.). It will be further understood by those within the art that if aspecific number of an introduced claim recitation is intended, such anintent will be explicitly recited in the claim, and in the absence ofsuch recitation, no such intent is present. For example, as an aid tounderstanding, the following appended claims may contain usage of theintroductory phrases “at least one” and “one or more” to introduce claimrecitations. However, the use of such phrases should not be construed toimply that the introduction of a claim recitation by the indefinitearticles “a” or “an” limits any particular claim containing suchintroduced claim recitation to embodiments containing only one suchrecitation, even when the same claim includes the introductory phrases“one or more” or “at least one” and indefinite articles such as “a” or“an” (e.g., “a” and/or “an” should be interpreted to mean “at least one”or “one or more”); the same holds true for the use of definite articlesused to introduce claim recitations. In addition, even if a specificnumber of an introduced claim recitation is explicitly recited, thoseskilled in the art will recognize that such recitation should beinterpreted to mean at least the recited number (e.g., the barerecitation of “two recitations,” without other modifiers, means at leasttwo recitations, or two or more recitations). Furthermore, in thoseinstances where a convention analogous to “at least one of A, B, and C,etc.” is used, in general, such a construction is intended in the senseone having skill in the art would understand the convention (e.g., “asystem having at least one of A, B, and C” would include but not belimited to systems that have A alone, B alone, C alone, A and Btogether, A and C together, B and C together, and/or A, B, and Ctogether, etc.). In those instances where a convention analogous to “atleast one of A, B, or C, etc.” is used, in general, such a constructionis intended in the sense one having skill in the art would understandthe convention (e.g., “a system having at least one of A, B, or C″ wouldinclude but not be limited to systems that have A alone, B alone, Calone, A and B together, A and C together, B and C together, and/or A,B, and C together, etc.). It will be further understood by those withinthe art that virtually any disjunctive word and/or phrase presenting twoor more alternative terms, whether in the description, claims, ordrawings, should be understood to contemplate the possibilities ofincluding one of the terms, either of the terms, or both terms. Forexample, the phrase “A or B” will be understood to include thepossibilities of “A” or “B” or “A and B.”

As will be understood by one skilled in the art, for any and allpurposes, such as in terms of providing a written description, allranges disclosed herein also encompass any and all possible subrangesand combinations of subranges thereof. Any listed range can be easilyrecognized as sufficiently describing and enabling the same range beingbroken down into at least equal halves, thirds, quarters, fifths,tenths, etc. As a non-limiting example, each range discussed herein canbe readily broken down into a lower third, middle third and upper third,etc. As will also be understood by one skilled in the art all languagesuch as “up to,” “at least,” “greater than,” “less than,” and the likeinclude the number recited and refer to ranges which can be subsequentlybroken down into subranges as discussed above. Finally, as will beunderstood by one skilled in the art, a range includes each individualmember. Thus, for example, a group having 1-3 cells refers to groupshaving 1, 2, or 3 cells. Similarly, a group having 1-5 cells refers togroups having 1, 2, 3, 4, or 5 cells, and so forth.

While various aspects and embodiments have been disclosed herein, otheraspects and embodiments will be apparent to those skilled in the art.The various aspects and embodiments disclosed herein are for purposes ofillustration and are not intended to be limiting, with the true scopeand spirit being indicated by the following claims.

What is claimed is:
 1. A method to execute a composite task, the methodcomprising, by one or more processors: obtaining the composite task;transforming the composite task into a plurality of atomic tasks;determining, based on a semantic relation graph, respective semanticrelationships between the plurality of atomic tasks; generating, basedon the respective semantic relationships, from the plurality of atomictasks, a list of atomic tasks, wherein generating the list of atomictasks includes generating a list inclusive of atomic tasks that aresemantically different from each other in the semantic relation graph;ordering the atomic tasks, included in the list of atomic tasks, togenerate an ordered list of atomic tasks, wherein ordering the atomictasks is based on respective semantic relationships between the atomictasks included in the list of atomic tasks; and processing at least afirst selected atomic task in the ordered list of atomic tasks toexecute the composite task, wherein the first selected atomic task isless semantically restrictive than at least one of the atomic tasks inthe ordered list of atomic tasks, and wherein the first selected atomictask is more semantically restrictive than at least another one of theatomic tasks in the ordered list of atomic tasks.
 2. The method of claim1, wherein generating the list of atomic tasks includes removing, fromthe plurality of atomic tasks, all except one atomic task, which aresemantically equivalent to each other in the semantic relation graph. 3.The method of claim 1, further comprising: constructing the semanticrelation graph, prior to obtaining the composite task.
 4. The method ofclaim 3, wherein constructing the semantic relation graph includesconstructing the semantic relation graph based on an ontology.
 5. Themethod of claim 1, further comprising, prior to obtaining the compositetask: obtaining a first symbol and a second symbol in an ontology;determining a semantic relationship between the first symbol and thesecond symbol; and generating, based at least on the semanticrelationship between the first symbol and the second symbol, thesemantic relation graph, wherein: determining the respective semanticrelationships between the plurality of atomic tasks includesdetermining, based on the semantic relation graph, that a particularatomic task, of the plurality of atomic tasks, is equivalent to anotheratomic task, of the plurality of atomic tasks, and generating the listof atomic tasks includes removing one of the particular atomic task andthe another atomic task from the plurality of atomic tasks.
 6. Themethod of claim 1, further comprising: obtaining a response to theprocessing of the first selected atomic task; and determining, based onthe response, not to process the at least another one of the atomictasks that is less semantically restrictive than the first selectedatomic task.
 7. The method of claim 1, wherein transforming thecomposite task into the plurality of atomic tasks includes: transformingthe composite task into a standard form descriptive logic notation,wherein the standard form descriptive logic notation of the compositetask includes inclusion axioms, assertions, queries, and composite taskconcepts; transforming the inclusion axioms into additional concepts;transforming the composite task concepts and the additional conceptsinto negation normal form concepts; and transforming the negation normalform concepts into conjunctions.
 8. A method to execute a compositetask, the method comprising, by one or more processors: obtaining thecomposite task; transforming the composite task into a plurality ofatomic tasks; determining, based on a semantic relation graph,respective semantic relationships between the plurality of atomic tasks;generating, based on the respective semantic relationships, a list ofatomic tasks, wherein generating the list of atomic tasks includesremoving, from the plurality of atomic tasks, at least one atomic taskthat is semantically equivalent, in the semantic relation graph, toanother atomic task included in plurality of atomic tasks; orderingatomic tasks included in the list of atomic tasks to generate an orderedlist of atomic tasks, wherein ordering the atomic tasks is based onrespective semantic relationships between the atomic tasks included inthe list of atomic tasks; processing at least a first selected atomictask in the ordered list of atomic tasks to execute the composite task;obtaining a response to the processing of the first selected atomictask; and determining, based on the response, not to process anotheratomic task, in the ordered list of atomic tasks, to execute thecomposite task, wherein the first selected atomic task is moresemantically restrictive, in the semantic relationship graph, than theanother atomic task in the ordered list of atomic tasks.
 9. The methodof claim 8, further comprising, prior to obtaining the composite task,generating the semantic relation graph by: obtaining a first symbol anda second symbol in an ontology; and determining a semantic relationshipbetween the first symbol and the second symbol in the ontology.
 10. Themethod of claim 8, wherein processing at least the first selected atomictask includes selecting an atomic task that is less semanticallyrestrictive than at least one of the atomic tasks in the ordered list ofatomic tasks.
 11. The method of claim 8, wherein: the plurality ofatomic tasks includes a first atomic task, a second atomic task, a thirdatomic task, and a fourth atomic task, and removing, from the pluralityof atomic tasks, the at least the atomic task includes removing thesecond atomic task and the fourth atomic task that are semanticallyequivalent, in the semantic relation graph, to the first atomic task andthe third atomic task respectively.
 12. The method of claim 8, whereintransforming the composite task into the plurality of atomic tasksincludes: transforming the composite task into a standard formdescriptive logic notation, wherein the standard form descriptive logicnotation of the composite task includes inclusion axioms, assertions,queries, and composite task concepts; transforming the inclusion axiomsinto additional concepts; transforming the composite task concepts andthe additional concepts into negation normal form concepts; andtransforming the negation normal form concepts into conjunctions. 13.The method of claim 8, further comprising: constructing the semanticrelation graph based on an ontology, wherein the semantic relation graphillustrates relationships between standard form descriptive logicnotations and symbols of the ontology.
 14. A device configured toexecute a composite task, the device comprising: one or more processors;and a memory, operably coupled to the one or more processors, configuredto store instructions, which in response to execution by the one or moreprocessors, cause the one or more processors to: obtain the compositetask; transform the composite task into a plurality of atomic tasks;determine, based on a semantic relation graph, respective semanticrelationships between the plurality of atomic tasks; generate, based onthe respective semantic relationships, a list of atomic tasks, whereinthe list of atomic tasks includes atomic tasks that are semanticallydifferent from each other in the semantic relation graph; order theatomic tasks included in the list of atomic tasks to generate an orderedlist of atomic tasks, wherein ordering the atomic tasks is based onrespective semantic relationships between the atomic tasks included inthe list of atomic tasks; and process at least a first selected atomictask in the ordered list of atomic tasks to execute the composite task,wherein the first selected atomic task is less semantically restrictivethan at least one of the atomic tasks in the ordered list of atomictasks, and wherein the first selected atomic task is more semanticallyrestrictive than at least another one of the atomic tasks in the orderedlist of atomic tasks.
 15. The device of claim 14, wherein, prior toobtaining the composite task, the instructions, in response to executionby the one or more processors, further cause the one or more processorsto: obtain a first symbol and a second symbol in an ontology; determinea semantic relationship between the first symbol and the second symbol;and generate, based at least on the semantic relationship between thefirst symbol and the second symbol, the semantic relation graph.
 16. Thedevice of claim 14, wherein, to transform the composite task into theplurality of atomic tasks, the instructions, in response to execution bythe one or more processors, cause the one or more processors to:transform the composite task into a standard form descriptive logicnotation, wherein the standard form descriptive logic notation of thecomposite task includes inclusion axioms, assertions, queries, andcomposite task concepts; transform the inclusion axioms and intoadditional concepts; transform the composite task concepts and theadditional concepts into negation normal form concepts; and transformthe negation normal form concepts into conjunctions.
 17. The device ofclaim 14, wherein the instructions, in response to execution by the oneor more processors, further cause the one or more processors to: obtaina response to the processing of the first selected atomic task; anddetermine, based on the response, not to process the at least anotherone of the atomic tasks that is less semantically restrictive than thefirst selected atomic task.
 18. The device of claim 14, wherein thememory is further operable to store the semantic relation graph.
 19. Thedevice of claim 14, wherein the instructions, in response to executionby the one or more processors, further cause the one or more processorsto: access the semantic relation graph over a network.
 20. The device ofclaim 14, wherein the instructions, in response to execution by the oneor more processors, further cause the one or more processors to:generate, based on an ontology stored in the memory, the semanticrelation graph, wherein the semantic relation graph illustrates that: afirst symbol of the ontology is semantically equivalent to a secondsymbol of the ontology, a third symbol of the ontology is semanticallymore restrictive than the second symbol of the ontology, and the thirdsymbol of the ontology is semantically less restrictive than a fourthsymbol of the ontology.